#!/bin/bash

#Start_D <proceso> <nombreProcesoInvocante>
#Chequea si ya se encontraba ejecutandose el proceso.
#  el primer parametro es el proceso a iniciar.
#  el segundo parametro es opcional, y es el nombre del comando que llama a esta funcion (en que archivo de log lo va a guardar).
#     si se omite lo guarda en Start_D.log

if [ -z "${GRUPO}" -o -z "${BINDIR}" ]; then
        source Grabar_L
else
        auxDir="${GRUPO}"/"${BINDIR}"
        source "${auxDir}"/Grabar_L
fi

function Start_D 
{

	if [ -z "${BINDIR}" ]; then
		DIREC='.'
	else
		if [ -z "${GRUPO}" ]; then
			DIREC="${BINDIR}"
		else 
			DIREC="${GRUPO}/${BINDIR}"
		fi
	fi
	proceso=$1
	nombreProceso=$2

	if [ $# -lt 1 ];  then
		echo "Start_D: Faltan parámetros." >&2
		return 1
	fi

	if [ -z $nombreProceso ]
	then
		nombreProceso="Start_D"
	fi

	nombre_proc=${proceso#*/}
	pid_proceso=`ps -e | grep -e "$nombre_proc$" | awk '{print $1}'`

	if [ -z "$pid_proceso" ];	then		
		#FIXME: ver si se puede hacer esta parte sin tener que usar un archivo temporal.
#		$DIREC/$proceso 2> error.tmp &  
		./$proceso 2> ./error_start_d.tmp &  
		existe=`-f ./error_start_d.tmp 2> /dev/null`
		if [ ! -z $existe  ];
		then
			Grabar_L $nombreProceso "No se pudo iniciar el proceso:  $proceso." 'E'
			rm ./error_start_d.tmp 2> /dev/null
			return 2
		else
			Grabar_L $nombreProceso "Se inició el proceso:  $proceso." 'I'
		fi
	
		rm ./error_start_d.tmp 2> /dev/null
	else
		Grabar_L $nombreProceso "El proceso ${proceso} ya está ejecutándose." 'W'
		return 3

	fi
	return 0
}

if [[ $BASH_SOURCE == $0 ]]; then
	Start_D "$@"
fi

